﻿using Ewell.Interface.Common.Model.Constant;
using Ewell.Interface.Common.Model.GateWay.Dto.Oauth;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ewell.Interface.Common.Model.GateWay.GateWayUriInfo
{
    public class InsuranceToClientDubboService : GateWayUri
    {
        public override string url => "dubbo/cc.ewell.his.insurance.binzhou.dubbo.InsuranceToClientDubboService";
        /// <summary>
        /// 电子凭证个账消费
        /// </summary>
        public GateWayMethod accountConsume => new AccountConsume(url);
        /// <summary>
        /// 电子凭证撤销个账消费
        /// </summary>
        public GateWayMethod cancelAccountConsume => new CancelAccountConsume(url);
    }
    public class AccountConsume : GateWayMethod
    {
        public AccountConsume(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "accountConsume";

        public override string paramClass => "cc.ewell.his.insurance.binzhou.upon.request.AccountConsumeReq";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(AccountConsumeReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "电子凭证个账消费";
    }

    public class CancelAccountConsume : GateWayMethod
    {
        public CancelAccountConsume(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "cancelAccountConsume";

        public override string paramClass => "cc.ewell.his.insurance.binzhou.upon.request.CancelAccountConsumeReq";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(CancelAccountConsumeReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "电子凭证撤销个账消费";
    }
}
